//============================================================================
// Nome        : Sucursal.h
// Autores     : T1G7
//                                      Felipe Galvão do Espírito Santo
//                                      Ivanilda Maísa Costa Brazão de Almeida
//                                      Paulo Jorge de Faria dos Reis
// Versão      : 1.0
// Data        : Maio de 2011
// Copyright   : Creative Commons 2.0
// Descrição   : CAL 2011 - TG1
//               Tema 12 - Transporte de pacientes de uma clínica de saúde.
//============================================================================

#ifndef SUCURSAL_H_
#define SUCURSAL_H_

#include "Cliente.h"
#include "Veiculo.h"

//! Inclui toda a informação sobre cada um dos centros de cuidades de saúde.
/*!
 *  Os clientes e os veículos não são guardados nesta estrutura, apenas apontadores para esses objectos.
 *  Esta classe não se encontra devidamente implementada. A sua relevância para o objectivo principal do trabalho não é crítica.
 */
class Sucursal
{
public:
	Sucursal();								//! Construtor básico sem conteúdo.
	Sucursal(string linha);					//! Construtor que permite realizar a criação do objecto da linha de registo em ficheiro de arquivo.
	~Sucursal();							//! Destrutor.
    Cliente* getCliente(int _id) const;		//! Devolve o apontador para um cliente.
    Veiculo* getVeiculo(int _id) const;		//! Devolve o apontador para um veículo.
    void novoCliente(Cliente* m_Cliente);	//! Insere um novo cliente na lista de clientes da sucursal.
    void novoVeiculo(Veiculo* m_Veiculo);	//! Insere um novo veículo na lista de veículos da sucursal.
    bool removeCliente(int id);				//! Remove o cliente da lista de clientes desta sucursal, cujo ID é fornecido e devolve o resultado.
    bool removeVeiculo(int id);				//! Remove o veículo da lista de veículos desta sucursal, cujo ID é fornecido e devolve o resultado.
	string guardar(const string separadores =";");	//! Devolve uma string que permite guardar o objecto num ficheiro de arquivo.

private:
	int idSucursal;							//! Identificador único de um cliente.
	int idGeoCoord;							//! Identificador geográfico.
	vector<Cliente*> clientes;				//! Lista dos clientes desta sucursal.
	vector<Veiculo*> Veiculos;				//! Lista de veículos assignados a esta sucursal.
};
#endif /* SUCURSAL_H_ */
